<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css/bootstrap.css">
    <style>
        #tb {
            width: 1200px;
            margin: 20px auto;
            text-align: center;
        }
    </style>
</head>

<body>

    <h1 style="text-align: center;">先创建Vue，然后再Vue的生命周期内，更新数据，更新组件属性（推荐）</h1>
    <div id="app">

        <table id="tb" class="table table-success table-striped">
            <tr>
                <th>Id</th>
                <th>标题</th>
                <th>分类</th>
                <th>创建时间</th>
                <th>浏览量</th>
                <th>点赞数</th>
                <th>是否置顶</th>
                <th>操作</th>
            </tr>
            <tr v-for="item in list">
                <td>{{item.Id}}</td>
                <td>{{item.Title}}</td>
                <td>{{item.ClassFication}}</td>
                <td>{{item.TimeCreate}}</td>
                <td>{{item.LookCount}}</td>
                <td>{{item.LikeCount}}</td>
                <td>{{item.IsTop?'是':'否'}}</td>
                <td>
                    <button class="btn btn-primary">编辑</button>
                    &nbsp;
                    <button class="btn btn-danger">删除</button>
                </td>
            </tr>

            <!-- 查无记录 -->
            <tr v-if="list.length == 0">
                <td colspan="8">查无记录</td>
            </tr>


        </table>


    </div>


    <h1>先更新数据，在创建Vue应用</h1>
    <div id="app2">

        <table id="tb" class="table table-success table-striped">
            <tr>
                <th>Id</th>
                <th>标题</th>
                <th>分类</th>
                <th>创建时间</th>
                <th>浏览量</th>
                <th>点赞数</th>
                <th>是否置顶</th>
                <th>操作</th>
            </tr>
            <tr v-for="item in list">
                <td>{{item.Id}}</td>
                <td>{{item.Title}}</td>
                <td>{{item.ClassFication}}</td>
                <td>{{item.TimeCreate}}</td>
                <td>{{item.LookCount}}</td>
                <td>{{item.LikeCount}}</td>
                <td>{{item.IsTop?'是':'否'}}</td>
                <td>
                    <button class="btn btn-primary">编辑</button>
                    &nbsp;
                    <button class="btn btn-danger">删除</button>
                </td>
            </tr>

            <!-- 查无记录 -->
            <tr v-if="list.length == 0">
                <td colspan="8">查无记录</td>
            </tr>


        </table>


    </div>

    <script src="js/vue.js"></script>
    <!-- 引入jQuery包，用于ajax请求 -->
    <script src="js/jquery-3.6.4.js"></script>
    <script>
        // 得到从后端来的数据（方式一）
        // 可以复用
        let app = Vue.createApp({
            data() {
                return {
                    list: []
                }
            },
            methods: {
                // 得到后端的传来的数据
                // 这样的好处为 可以复用
                loadDate() {
                    // 需要提前准备一个变量，用于指向this
                    let that = this;
                    jQuery.ajax('http://127.0.0.1:8090', {
                        // success 用于接收请求成功后的回调函数
                        dataType: 'JSON',
                        success(date) {
                            // data 数据是从后端返回回来的
                            that.list = date
                        }
                    })
                }
            },
            // 生命周期钩子
            // 创建Vue应用时会被调用
            created() {
                // 当Vue应用被创建的时候去调用这个函数
                this.loadDate();
            }

        }).mount('#app')


        // 得到从后端来的数据（方式二）
        // 不可以复用
        jQuery.ajax('http://127.0.0.1:8090', {
            dataType: 'json',
            success(date) {
                let app2 = Vue.createApp({
                    data() {
                        return {
                            list: date
                        }
                    }
                }).mount('#app2')
            }
        })






    </script>
</body>

</html>